package com.gitee.wsl.transform.encode


fun interface ByteArrayEncode<V>:Encode<ByteArray,V>{
    companion object
}

fun interface DecodeToByteArray<V>:Decode<V,ByteArray>{
    companion object
}

interface ByteArrayEncodeDecode<V>: ByteArrayEncode<V>,DecodeToByteArray<V>

interface ByteArrayToByteArrayEncodeDecode: ByteArrayEncodeDecode<ByteArray>


fun <V> ByteArray.encode(type: ByteArrayEncode<V>) = type.encode(this)

fun <V> V.decode(type:DecodeToByteArray<V>) = type.decode(this)